package com.wnxy.sddfp.bank.service;

import com.wnxy.sddfp.bank.entity.TradeLog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wnxy.sddfp.common.enums.BorrowRecordStatusDTO;
import com.wnxy.sddfp.common.model.dto.bank.BankCardAddDTO;
import com.wnxy.sddfp.common.model.dto.bank.SignatureDTO;
import com.wnxy.sddfp.common.model.dto.bid.BankBidDTO;
import com.wnxy.sddfp.common.model.dto.bid.BidBalanceDTO;
import com.wnxy.sddfp.common.model.vo.bid.LoanVo;
import com.wnxy.sddfp.common.model.vo.trade.BorrowRecordVo;

/**
 * <p>
 * 托管系统交易记录表 服务类
 * </p>
 *
 * @author Jet
 * @since 2023-04-27
 */
public interface ITradeLogService extends IService<TradeLog> {

    /**
     * 绑卡生成交易记录
     */
    SignatureDTO proxyBindCardLog(BankCardAddDTO bankCardAddDTO);

    /**
     * 根据请求流水号修改交易记录的状态
     * @param reqCode
     */
    void modifyStatus(String reqCode);

    /**
     * 借款审核，同步借款数据
     * @param borrowRecordVo
     */
    void syncBorrowRecord(BorrowRecordVo borrowRecordVo);

    /**
     * 获取机构账户余额
     * @param userCode
     * @return
     */
    BidBalanceDTO getBidBalance(String userCode);

    /**
     * 机构投资申购数据
     * @param bankBidDTO
     */
    void addBankBidAgency(BankBidDTO bankBidDTO);

    /**
     * 放款确认
     */
    void confirmLoan(LoanVo loanVo);

    /**
     * 同步借款状态
     */
    void updateBorrowRecordStatus(BorrowRecordStatusDTO brsDTO);
}
